Path Traversal(也稱 Directory Traversal)讓攻擊者能讀取伺服器上原本不應該存取的檔案(例如 /etc/passwd
、應用私密檔)。
..
代表上一層目錄;若應用把使用者輸入直接拼到檔案路徑上(例如 open("/var/www/html/uploads/" + filename)
),攻擊者就能輸入 ../../..
跳出預期目錄,讀取任意檔案。../../../../some dir/some file
..%2F..%2Fsome dir%2Fsome file
%2e%2e%2f
、.%2e/%2e%2e/
等)..%2f..%252f..%2f/etc/passwd
)../../some dir/some file%00
..\..\Windows\win.ini
類似路徑php://filter
結合以讀取檔案內容(屬於 LFI 與特殊技巧的交集):file=php://filter/convert.base64-encode/resource=../../config.php
../
,看是否回傳系統檔內容或出現錯誤/etc/hosts
, /etc/passwd
)確認成功好欸接下來我們來看今天的題目吧!
題目說了我們現在的檔案在 /usr/share/nginx/html/
,而我們要的flag位在/flag.txt
,所以我們要往回跳四層
最終payload就是../../../../flag.txt
Read之後就能獲得flag啦!
以上就是今天的內容啦
想看更多,記得明天再來喔~